WinCC V7.2学习记录

您所在的位置:网站首页 wincc下拉框 数值 WinCC V7.2学习记录

WinCC V7.2学习记录

2023-10-10 02:13| 来源: 网络整理| 查看: 265

目录

一 软件安装说明

二 设置PG/PC接口

三 变量管理

四 报警相关设置

五 WinCC配方创建方法

六 使用“状态显示”对象创建动画

七 WinCC中组合框、复选框、选项组的应用

八 画面制作

九 WINCC用户权限管理

其它

问题记录

一 软件安装说明

说明,若计算机名错误,也可直接更改,不用重新恢复系统

参考以下链接

安装好WINCC的电脑修改计算机名实例

先更改计算机名开始-->启动SQL Server Management Studio,断开连接,更改要连接的计算机名更改WinCC项目中“计算机”名 二 设置PG/PC接口

进入控制面板,SET PG/PC,选择”Add/Delete”,新建访问点名,之后关联相应网卡。

 

三 变量管理

新建S7-1200/1500驱动,之后新建连接,并设置连接参数,参考如下

 

说明,WinCC 7.2只支持绝对地址寻址,这样即要求再TIA博图软件中,将相应DB块属性中“优化的块访问”取消勾选。

设置变量当前值显示方式,按下图方式,选择”值”,则在WinCC启动时会看到值

四 报警相关设置

报警列添加,可根据厂区、产线、设备进行报警位置划分,便于快速排查问题

如下图,在报警记录-->消息块-->用户文本块中添加块3,块4

更名为产线和单元,见下图

在图形画面中添加报警控件

右键打开报警控件属性,在“消息列表”一项中,将”产线”和”单元”添加到选定消息块中,确认后,效果如下图所示

之后在报警列表里会出现所设置的“列表”选型

注意要在WinCC中,右键,计算机属性,”启动”项中勾选相应选项

或运行报警有错,按下面方法排除

报警消息过滤

固定过滤条件

即根据需要创建多个报警窗口,每个窗口在消息列表à固定选择à编辑,中单独选择,并设定选择条件,如下图所示

动态过滤条件

即只创建一个报警窗口,但在”选择”-->编辑,中创建不同的选择条件,这样在实际应用中,再根据需要,在组态动画框中选择需要查看的选项

不同设置方法,测试效果图,如下

读取PLC系统报警,待测试

读取PLC报警,待测试

五 WinCC配方创建方法

采用WinCC User Archive控件(用户归档)

控制变量用于WinCC用户归档数据用户归档数据的增加,修改和删除

用户自定义数据表格和视图à记录字符串在数据库和自动化系统传送数据记录(配方)à保证数据记录的一致性

创建变量,本例由于未连接PLC,故在WinCC中创建变量,参考如下

WinCC中“用户归档”,新建归档,输入名称

选择创建,之后系统会自动生成4个变量

之后会提示添加域,选择是,进行添加

创建域名  Product,类型为字符串,关联变量

设置域  Temperature,这里可设置起始值,即默认值

再创建域  Pressure

之后保存,并点击“运行系统数据”

在画面中,创建如下画面,并添加“WinCC UserArchiveControl”控制,并在“用户归档”中选择UA5,如下

WinCC 计算机启动列表中,勾选图形运行系统和用户归档

测试效果如下图

六 使用“状态显示”对象创建动画

使用WinCC的“状态显示”,通过关联一系列的图片,生成动画。

主要相当于通过一个变量中不同值,调取不同的图片

http://www.ad.siemens.com.cn/service/elearning/cn/VideoBig.aspx?CourseID=683

创建两个变量,一个数据类型为位,另一个为数值

将相关图片考入到项目GraCS文件夹中

在页面中,新建“状态显示”,将变量链接为“PhotoNum”,修改更新周期

在“状态显示”属性中,属性,状态,基本画面中,按值顺序添加相应图片

全部添加完成后,效果如下图

之后在本画面,右键调出属性,对  事件à其它à打开画面,右键选择C动作,之后添加代码,编译并确定,如下

SetTagBit("PhotoStart",1);

SetTagWord("PhotoNum",0);

之后在”属性”,其它,显示部分添加C代码

int a,b; a=GetTagBit("PhotoStart"); if (a==1) {b=GetTagWord("PhotoNum"); if (b>5) b=0; SetTagWord("PhotoNum",b+1); } else SetTagBit("Photo",0); return 0;

之后在画面中,创建“开始”和“停止”按钮,并分别在按钮属性-->事件-->鼠标-->按左键,部分添加C代码

SetTagBit("PhotoStart",1);

SetTagBit("PhotoStart",0);

      

七 WinCC中组合框、复选框、选项组的应用

创建组合框à属性à其它à之后设定“选定框”的值和“选定文本”的内容,之后将选定框值关联到变量,并设定更新周期,如本例中”SetNum1”

注意:在左侧属性à几何à行数中可设定组合框的行数

创建复选框-->属性-->输出/输入-->设定关联变量,设置更新周期

之后在 字体-->索引,和文本项设置相应值

创建选项框-->参考复选框创建方法即可

八 画面制作

画中画制作

创建两个画面,其中小画面设置画面宽度和高度

小画面中创建一个按钮,用于隐藏小画面,设置如下,表示当点击该按钮时子画面隐藏

子画面其它内容自行添加

大画面中创建一个按钮和一个“画面窗口”,设置如下,表示当点击该按钮时,子画面显示

之后设置“画面窗口”的几何属性,即宽度和高度,之后,在属性à其它à画面名称中选择要显示的子画面名,并可对其它属性进行设置,如是否可移动,大小是否可调整,是否含标题及标题内容等进行设置。

例子效果如下图

用模板的方式做相同的画面

九 WINCC用户权限管理

制作两个按钮,一个“登录”,一个“注销”

登录按钮

“鼠标左键”,添加C代码

#pragma code("useadmin.dll")

#include "PWRT_api.h"

#pragma code()

PWRTLogin('c');

注销按钮

“鼠标左键”,添加C代码

#pragma code("useadmin.dll")

#include "PWRT_api.h"

#pragma code()

PWRTLogout();

制作一个IO输入输出域,利用wincc自带的系统变量 @CurrentUserName (已登录用户名),用来表示已登录用户名;

在WinCC左侧树形图中,“用户管理器”,创建相应的用户名和密码;

若要实现WINCC运行当中添加或删除用户及更改密码,可通过添加Wincc UserAdminControl控件进行实现。

参考网站:

http://blog.sina.com.cn/s/blog_1359616830102uztk.html

其它

退出WinCC画面,C代码

DeactivateRTProject();

输入输出域,通过更改数据格式,可选择不同的输入方式,及也可以输入字母

设置WinCC项目开机自启动

按钮制作

用C程序

SetTagBit("PhotoStart",1);

SetTagBit("PhotoStart",0);

按左键时,设变量为1

释放左键时,设变量为0

注意事项:

需将按钮或状态的属性中,效果,全局颜色方案选择为“否”,否则看不出自定义的颜色效果

其它:用C语言实现单按钮启停功能

SetTagBit("Start6",1-GetTagBit("Start6"));

西门子官网关于C脚本应用案例

WinCC脚本问题合集

WinCC 使用C脚本写变量

WinCC所提供的C脚本中,使用函数来写变量的值,例如按钮动作中同时給2个变量赋值,就只能使用脚本,C脚本是一个不错的选择,函数使用简单。

以下是写函数名称,以及对应的数据类型,双引号中Tag_Name替换成所要写的变量名称,value替换成所要写的值。

SetTagBit(“Tag_Name”, value) 二进制变量

SetTagByte(“Tag_Name”, value) 无符号8位值

SetTagWord(“Tag_Name”, value) 无符号16位值

SetTagSWord(“Tag_Name”, value) 有符号16位值

SetTagDWord(“Tag_Name”, value) 无符号32位值

SetTagFloat(“Tag_Name”, value) 32位浮点数

问题记录

问题1:超过16位的字符集如何输入到WinCC中

答:该问题已找出,不是超过16位的不能显示,可以显示,而是由于扫码枪扫出来的数据是分行的,所以只显示了最后一行。

问题2:如果通过组合框,给相应变量赋值(或赋字符串)

目前实现的方法比较笨拙,用两个变量,一个存值,另外一个存想要的变量

SetTagChar("SelectType_4",""); if (GetTagDWord("SelectNum_4")==1) {SetTagChar("SelectType_4","16X5.5"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==2) {SetTagChar("SelectType_4","17.5X6.0"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==3) {SetTagChar("SelectType_4","19.5X7.5"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==4) {SetTagChar("SelectType_4","22.5X7.5"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==5) {SetTagChar("SelectType_4","22.5X8.25"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==6) {SetTagChar("SelectType_4","22.5X9.00"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==7) {SetTagChar("SelectType_4","22.5X11.75"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==8) {SetTagChar("SelectType_4","22.5X14.00"); //Return-Type: BOOL } if (GetTagDWord("SelectNum_4")==9) {SetTagChar("SelectType_4","24.5X8.25"); //Return-Type: BOOL }

问题3 字符串如何合并

char buffer[256]="";

strcat(buffer,GetTagChar("Char1"));

strcat(buffer,GetTagChar("Char2"));

SetTagChar("Char3",buffer);



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3